package cn.t.keycloak.demo.custom;

import org.keycloak.provider.Provider;
import org.keycloak.provider.ProviderFactory;
import org.keycloak.provider.Spi;

/**
 * https://juejin.cn/post/7295750874181140531#heading-2
 * 03. 自定义的spi实现
 * 在resource/META-INF/services目录下新建一个org.keycloak.provider.Spi文件
 * 内容为cn.t.keycloak.demo.custom.Spi
 * @author 陶敏麒
 * @date 2023/11/7 13:43
 */
public class CustomSpi implements Spi {
    @Override
    public boolean isInternal() {
        // 是否是内部的
        return false;
    }

    @Override
    public String getName() {
        // SPI的名字
        return "CustomSpi";
    }

    @Override
    public Class<? extends Provider> getProviderClass() {
        // 指定Provider的类型
        return ICustomSpiProvider.class;
    }

    @Override
    public Class<? extends ProviderFactory<ICustomSpiProvider>> getProviderFactoryClass() {
        // 声明ProviderFactory接口是的类型
        return ICustomSpiProviderFactory.class;
    }

    @Override
    public boolean isEnabled() {
        return Spi.super.isEnabled();
    }
}
